Nota: Estos ejemplos están indicados para hacerse en scripts de código Python, no en Jupyter

Conexión a la base de datos, creación y desconexión


In [15]:
# Importamos el módulo
import sqlite3

# Nos conectamos a la base de datos ejemplo.db (la crea si no existe)
conexion = sqlite3.connect('ejemplo.db')

# Cerramos la conexión, si no la cerramos se mantendrá en uso y no podremos gestionar el fichero
conexion.close()

Creación de una tabla utilizando sintaxis SQL

Antes de ejecutar una consulta (query) en código SQL, tenemos que crear un cursor.

Una vez creada la tabla, si intentamos volver a crearla dará error indicándonos que esta ya existe.


In [14]:
import sqlite3

conexion = sqlite3.connect('ejemplo.db')

# Creamos el cursor
cursor = conexion.cursor()

# Ahora crearemos una tabla de usuarios para almacenar nombres, edades y emails
cursor.execute("CREATE TABLE usuarios (nombre VARCHAR(100), edad INTEGER, email VARCHAR(100))")

# Guardamos los cambios haciendo un commit
conexion.commit()

conexion.close()


---------------------------------------------------------------------------
OperationalError                          Traceback (most recent call last)
<ipython-input-14-279f8cd3e83f> in <module>()
      7 
      8 # Ahora crearemos una tabla de usuarios para almacenar nombres, edades y emails
----> 9 cursor.execute("CREATE TABLE usuarios (nombre text, edad int, email text)")
     10 
     11 # Guardamos los cambios haciendo un commit

OperationalError: table usuarios already exists

Insertando un registro


In [16]:
import sqlite3

conexion = sqlite3.connect('ejemplo.db')
cursor = conexion.cursor()

# Insertamos un registro en la tabla de usuarios
cursor.execute("INSERT INTO usuarios VALUES ('Hector', 27, 'hector@ejemplo.com')")

# Guardamos los cambios haciendo un commit
conexion.commit()

conexion.close()

Recuperando el primer registro con .fetchone()


In [20]:
import sqlite3

conexion = sqlite3.connect('ejemplo.db')
cursor = conexion.cursor()

# Recuperamos los registros de la tabla de usuarios
cursor.execute("SELECT * FROM usuarios")

# Mostrar el cursos a ver que hay ?
print(cursor)

# Recorremos el primer registro con el método fetchone, devuelve una tupla
usuario = cursor.fetchone()
print(usuario)

conexion.close()


('Hector', 27, 'hector@ejemplo.com')

Insertando varios registros con .executemany()


In [26]:
import sqlite3

conexion = sqlite3.connect('ejemplo.db')
cursor = conexion.cursor()

# Creamos una lista con varios usuarios
usuarios = [('Mario', 51, 'mario@ejemplo.com'),
            ('Mercedes', 38, 'mercedes@ejemplo.com'),
            ('Juan', 19, 'juan@ejemplo.com'),
            ]

# Ahora utilizamos el método executemany() para insertar varios
cursor.executemany("INSERT INTO usuarios VALUES (?,?,?)", usuarios)

# Guardamos los cambios haciendo un commit
conexion.commit()

conexion.close()

Recuperando varios registros con .fetchall()


In [27]:
import sqlite3

conexion = sqlite3.connect('ejemplo.db')
cursor = conexion.cursor()

# Recuperamos los registros de la tabla de usuarios
cursor.execute("SELECT * FROM usuarios")

# Recorremos todos los registros con fetchall, y los volvamos en una lista de usuarios
usuarios = cursor.fetchall()

# Ahora podemos recorrer todos los usuarios
for usuario in usuarios:
    print(usuario)

conexion.close()


('Hector', 27, 'hector@ejemplo.com')
('Mario', 51, 'mario@ejemplo.com')
('Mercedes', 38, 'mercedes@ejemplo.com')
('Juan', 19, 'juan@ejemplo.com')

Utilizando DB Browser

En esta práctica vamos a analizar el contenido de nuestra base de datos utilizando un programa externo.

http://sqlitebrowser.org/